package org.example.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.example.common.enums.LogicEnum;

/**
 * 定义接口所需权限项
 *
 * @author Jjn
 * @since 2021-10-14 10:31
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequirePermission {
    /**
     * 定义接口所需要的权限项.
     *
     * @return 需要的权限
     */
    String[] requiredPermissions() default {};
    
    /**
     * 接口定义的逻辑处理.
     *
     * @return 接口定义的逻辑处理符号
     */
    LogicEnum logical() default LogicEnum.OR;
}
